home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / DJGPP / GAS211S2.ZIP / src / gas-211 / include / aout / sun4.h < prev   
Text File  |  1993-05-30  |  1KB  |  31 lines

  1. /* SPARC-specific values for a.out files */
  2.  
  3. #define PAGE_SIZE    0x2000        /* 8K.  aka NBPG in <sys/param.h> */
  4. /* Note that some SPARCs have 4K pages, some 8K, some others.  */
  5.  
  6. #define SEG_SIZE_SPARC    PAGE_SIZE
  7. #define    SEG_SIZE_SUN3    0x20000        /* Resolution of r/w protection hw */
  8.  
  9. #define TEXT_START_ADDR    PAGE_SIZE    /* Location 0 is not accessible */
  10. #define N_HEADER_IN_TEXT(x) 1
  11.  
  12. /* Non-default definitions of the accessor macros... */
  13.  
  14. /* Segment size varies on Sun-3 versus Sun-4.  */
  15.  
  16. #define N_SEGSIZE(x)    (N_MACHTYPE(x) == M_SPARC?    SEG_SIZE_SPARC:    \
  17.              N_MACHTYPE(x) == M_68020?    SEG_SIZE_SUN3:    \
  18.             /* Guess? */            PAGE_SIZE)
  19.  
  20. /* Virtual Address of text segment from the a.out file.  For OMAGIC,
  21.    (almost always "unlinked .o's" these days), should be zero.
  22.    Sun added a kludge so that shared libraries linked ZMAGIC get
  23.    an address of zero if a_entry (!!!) is lower than the otherwise
  24.    expected text address.  These kludges have gotta go!
  25.    For linked files, should reflect reality if we know it.  */
  26.  
  27. #define N_TXTADDR(x) \
  28.     (N_MAGIC(x)==OMAGIC? 0 \
  29.      : (N_MAGIC(x) == ZMAGIC && (x).a_entry < TEXT_START_ADDR)? 0 \
  30.      : TEXT_START_ADDR+EXEC_BYTES_SIZE)
  31.